Intelligent warning system

ABSTRACT

Various embodiments described herein relate to an intelligent warning system in a communication service. One embodiment of the present invention analyzes a user&#39;s biometric signals and image data of one of the user&#39;s in a communication session to determine a distress level. In addition, location data indicating the user&#39;s velocity and direction can be used to determine a distress level. If the biometric signals or the image data indicate a distress level that meets or exceeds a threshold level, a notification is automatically sent to a remote user. This can allow a remote user to render assistance to a user in distress, even when the user is unable to communicate one or more conditions.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority under 35 U.S.C. § 119(e) to U.S.Provisional Patent Application No. 62/663,665, filed on Apr. 19, 2018and titled “INTELLIGENT WARNING SYSTEM,” the entire disclosure of whichis expressly incorporated in its entirety by reference herein.

BACKGROUND

Modern electronic devices come with a plethora of sensors and can doamazing things, yet sometimes they cannot do the most useful and mostimportant tasks. In some instances, during a communication session, forexample, it is vital to communicate the user's condition. When users arefaced with a possible sudden life-threatening condition, they may beunable to convey that condition to the other user(s), and as such, theother user would be none the wiser to appreciate the severity of thesituation.

For example, the user may be experiencing shortness of breath, a heartattack, or stroke, thereby making it difficult, or render the userincapable to speak or deliver a message to the other user of the presentcondition and urgent need for immediate medical assistance. In otherinstances, the user may be unaware of his/her present condition, as theonset of a life-threatening condition may be sudden, and the user wouldnot have time to deliver a message to the other user in a chattingsession.

Despite having a fully capable device that could monitor the user'spulse, and “see” the user through cameras and environmental awareness, auser may have a dire medical condition yet the device would not know andwould take no action to help keep the person safe and/or notify theother user in the chat session so they could intervene. Therefore, thereis a need for improved communication systems to address these issues. Itis with respect to these and other considerations that the disclosuremade herein is presented.

SUMMARY

The present invention provides a method for using a biometric signal ina communication system to generate intelligent warning signals. In someembodiments, one or more streams associated with a communication sessioncomprise biometric data of a user participating in the communicationsession. For example, a server may be in communication with a network,such as the Internet or cellular network, where it can receive the datafrom an end-user device, such as a phone or a tablet. The techniquesdisclosed herein provide a system for analyzing at least one aspect ofthe biometric data. For example, the server might have access to abiometric detection module, which can analyze the biometric signals anddetermine a user condition or state.

The system can then determine if an aspect of the biometric data meetsone or more criteria. For example, the server might access a biometricdata table in memory that lists various characteristics of the biometricsignal and associates those characteristics with a known user conditionor state. One biometric signal might be the user's pulse and aparticular reading might indicate a characteristic of the pulse, such as“the pulse is high” or the “pulse is low.” In such cases, the serverdetermines that criteria associated with the user's pulse has been met.Once the criteria has been met, a notification may be generated. Thenotification can be a graphical display, an audio signal or any otherindicator, such as a light or tactile interface. In another example, ifa user moves in a particular pattern, velocity, or direction thatindicates distress, the server may determine that criteria associatedwith the user has been met. Thus, if a user is moving in a particulardirection or velocity that is outside a defined threshold, anotification may be generated.

In response to determining that one or more criteria has been met, thetechniques disclosed herein provide a system that can display anotification on a graphical user interface or generate an audio signalto indicate a condition of a user. In some configurations, a computermay display a rendering of information associated with the biometricdata. For example, if the user's pulse rate fell into a range associatedwith the characteristic of meeting the criteria, e.g., critically closeto death, the server would cause to use data from the biometric datatable which alerts the other users with the specified notificationregarding the user's condition. If the user was found to be moving in apattern that indicated distress, one or more warnings would be generatedfor remote users.

In some configurations, the biometric data, the location data indicatingmovement, and other information associated with the user can be used togenerate one or more values indicating a distress level. For instance,the biometric data at a particular heart rate and temperature may causethe generation of the first score, movement patterns from the locationdata may cause the generation of a second score, and image data from acamera detecting facial expressions or bodily movement can cause thegeneration of a third score. The scores can be combined or otherwiseprocessed using one or more algorithms to determine an accumulativescore which can be compared against the threshold. The notificationsdescribed herein can be triggered when the accumulative score meets orexceeds the threshold. It can be appreciated that any of these scorescan be used individually or in any combination to determine anaccumulative score. Thus, any of the sensors described herein can beused individually or in any combination to generate the notificationsdescribed herein.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key or essentialfeatures of the claimed subject matter, nor is it intended to be used asan aid in determining the scope of the claimed subject matter. The term“techniques,” for instance, may refer to system(s), method(s),computer-readable instructions, module(s), algorithms, hardware logic,and/or operation(s) as permitted by the context described above andthroughout the document.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a communication system according to anembodiment of the present invention.

FIG. 2 is a block diagram of an example device in the communicationsystem of FIG. 1.

FIG. 3 is an example of image data which is used in communication thesystem of FIG. 1.

FIG. 4A is a diagram of an example that illustrates an embodiment of thepresent invention.

FIG. 4B is a diagram of an example that illustrates an embodiment of thepresent invention where the image data changes.

FIG. 4C is a diagram of an example that illustrates an embodiment of thepresent invention where a notification is sent to another user.

FIG. 5 is a flowchart of an embodiment of the present invention during acommunication session.

FIG. 6. is a flowchart of an embodiment of the present invention duringa communication session.

DETAILED DESCRIPTION

The present invention enables a user's device, such as a cellular phoneor smartwatch, to alert another user when the user's physical conditionmeets a threshold. Computing systems enabled with sensors, capable ofmeasuring at least a pulse and/or movement of a user, and/or equippedwith a camera allow for enhanced analysis of the user's physicalcharacteristics to determine a level of distress. In response todetermining that the level of distress, a score of which may be comparedagainst a threshold of one or more criteria, one or more notificationsmay be generated and communicated to remote users. The notifications maysimply provide notice of a particular condition or level of distress, orthe notifications may provide more detailed descriptions of the user'sphysical condition or a level of distress.

In one example, the computing device might be a smartphone with afront-facing camera or a wearable device such as a smart-watch. If auser were in a communication session with another user's computingdevice and began walking or jogging, the system could monitor thevelocity of the user, determine the heart rate and in conjunctionanalyze the user's facial characteristics to determine if delivering anS.O.S. Notification would be necessary. In another example, the usermight experience a sudden onset of a heart attack or other ailment. Theuser's pulse rate might dip or spike abnormally low or high. The usermay also manifest severe physical expressions of discomfort anddistress. Then, the system would analyze these physical characteristicsalong with a determination of whether the biometric data meets thethreshold and warrant an S.O.S. alert to the other computing device.

The present invention is an intelligent warning system as shown in FIG.1, which includes a communication session 104 between a number of clientcomputing devices 106(1) through 106(N) (where N is a positive integernumber having a value of two or greater). The client computing devices106(1) through 106(N) enable users to participate in the communicationsession 104.

In this example, the communication session 104 may be hosted, over oneor more network(s) 108, by the system 102. That is, the system 102 mayprovide a service that enables users of the client computing devices106(1) through 106(N) to participate in the communication session 104.As an alternative, the communication session 104 may be hosted by one ofthe client computing devices 106(1) through 106(N) utilizingpeer-to-peer technologies.

The system 102 includes device(s) 110, and the device(s) 110 and/orother components of the system 102 may include distributed computingresources that communicate with one another, with the system 102, and/orwith the client computing devices 106(1) through 106(N) via the one ormore network(s) 108. In some examples, the system 102 may be anindependent system that is tasked with managing aspects of one or morecommunication sessions 104.

Network(s) 108 may include, for example, public networks such as theInternet, private networks such as an institutional and/or personalintranet, or some combination of private and public networks. Network(s)108 may also include any type of wired and/or wireless network,including but not limited to local area networks (“LANs”), wide areanetworks (“WANs”), satellite networks, cable networks, Wi-Fi networks,WiMax networks, mobile communications networks (e.g., 3G, 4G, and soforth) or any combination thereof. Network(s) 108 may utilizecommunications protocols, including packet-based and/or datagram-basedprotocols such as Internet protocol (“IP”), transmission controlprotocol (“TCP”), user datagram protocol (“UDP”), or other types ofprotocols. Moreover, network(s) 108 may also include a number of devicesthat facilitate network communications and/or form a hardware basis forthe networks, such as switches, routers, gateways, access points,firewalls, base stations, repeaters, backbone devices, and the like.

In some examples, network(s) 108 may further include devices that enableconnection to a wireless network, such as a wireless access point(“WAP”). Example networks support connectivity through WAPs that sendand receive data over various electromagnetic frequencies (e.g., radiofrequencies), including WAPs that support Institute of Electrical andElectronics Engineers (“IEEE”) 802.11 standards (e.g., 802.11g, 802.11n,and so forth), and other standards.

In various examples, device(s) 110 may include one or more computingdevices that operate in a cluster or other grouped configuration toshare resources, balance load, increase performance, provide fail-oversupport or redundancy, or for other purposes. For instance, device(s)110 may belong to a variety of classes of devices such as traditionalserver-type devices, desktop computer-type devices, and/or mobile-typedevices. Thus, although illustrated as a single type of device—aserver-type device—device(s) 110 may include a diverse variety of devicetypes and are not limited to a particular type of device. Device(s) 110may represent, but are not limited to, server computers, desktopcomputers, web-server computers, personal computers, mobile computers,laptop computers, mobile phones, tablet computers, or any other sort ofcomputing device.

A client computing device (e.g., one of client computing device(s)106(1) through 106(N)) may belong to a variety of classes of devices,which may be the same as, or different from, device(s) 110, such astraditional client-type devices, desktop computer-type devices,mobile-type devices, special purpose-type devices, embedded-typedevices, and/or wearable-type devices. Thus, a client computing devicecan include, but is not limited to, a desktop computer, a game consoleand/or a gaming device, a tablet computer, a personal data assistant(“PDA”), a mobile phone/tablet hybrid, a laptop computer, acommunication device, a computer navigation type client computing devicesuch as a satellite-based navigation system including a globalpositioning system (“GPS”) device, a wearable device, a virtual reality(“VR”) device, an augmented reality (AR) device, an implanted computingdevice, an automotive computer, a network-enabled television, a thinclient, a terminal, an Internet of Things (“IoT”) device, a workstation, a media player, a personal video recorder (“PVR”), a set-topbox, a camera, an integrated component (e.g., a peripheral device) forinclusion in a computing device, an appliance, or any other sort ofcomputing device. In some implementations, a client computing deviceincludes input/output (“I/O”) interfaces that enable communications withinput/output devices such as user input devices including peripheralinput devices (e.g., a game controller, a keyboard, a mouse, a pen, avoice input device, a touch input device, a gestural input device, andthe like) and/or output devices including peripheral output devices(e.g., a display, a printer, audio speakers, a haptic output device, andthe like).

Client computing device(s) 106(1) through 106(N) of the various classesand device types can represent any type of computing device having oneor more processing unit(s) 112 operably connected to computer-readablemedia 114 such as via a bus 116, which in some instances can include oneor more of a system bus, a data bus, an address bus, a PCI bus, aMini-PCI bus, and any variety of local, peripheral, and/or independentbuses. The computer-readable media 114 may store executable instructionsand data used by programmed functions during operation. Examples offunctions implemented by executable instructions stored on thecomputer-readable media 114 may include, for example, an operatingsystem 128, a client module 130, other modules 132, and programs orapplications that are loadable and executable by processing unit(s) 112.

Client computing device(s) 106(1) through 106(N) may also include one ormore interface(s) 134 to enable communications with other input devices148 such as network interfaces, cameras, keyboards, touch screens, andpointing devices (mouse). For example, the interface(s) 134 enablecommunications between client computing device(s) 106(1) through 106(N)and other networked devices, such as device(s) 110 and/or devices of thesystem 102, over network(s) 108. Such network interface(s) 134 mayinclude one or more network interface controllers (NICs) or other typesof transceiver devices to send and receive communications and/or dataover a network.

In the example environment 100 of FIG. 1, client computing devices106(1) through 106(N) may use their respective client modules 130 toconnect with one another and/or other external device(s) in order toparticipate in the communication session 104. For instance, a first usermay utilize a client computing device 106(1) to communicate with asecond user of another client computing device 106(2). When executingclient modules 130, the users may share data, which may cause the clientcomputing device 106(1) to connect to the system 102 with the otherclient computing devices 106(2) through 106(N) over the network(s) 108.

The client module 130 of each client computing device 106(1) through106(N) may include logic that detects user input and communicatescontrol signals to the server relating to controlling aspects of thecommunication session 104. For example, the client module 130 in thefirst client computing device 106(1) in FIG. 1 may detect a user inputat an input device 148. The user input may be sensed, for example, as afinger press on a user interface element displayed on a touchscreen, oras a click of a mouse on a user interface element selected by a pointeron the display 150. The client module 130 translates the user inputaccording to a function associated with the selected user interfaceelement.

As discussed above, one or more streams from client computing devices106 in environment 100 comprise image data 199 of a user participatingin the communication session 104. The client module 130 may send acontrol signal 156(1) (also referred to herein as a “control command” oran “indication”) to a server (for example, a server operating on thedevice 110) to perform the desired function.

In one embodiment, the system 102 may receive one or more streamsassociated with a communication session 104, the one or more streamscomprising image data 199 of a user participating in the communicationsession 104. The system 102 may analyze the image data by examining atleast one physical feature of the user using an emotion detection module198 to determine an emotion signal. If an emotion is detected, itselects the emotion signal from a list of emotions in an emotion datatable 135.

For example, a first user in a communication session 104 may beexperiencing sudden, sharp pains in her body. At this time, herexpression may change from a neutral one to a grimacing, stressedexpression. The user's change in expression would be captured andanalyzed by the system 102. Next, the user's grimace of pain and stresswould be determined to be a change of emotion, and thereby generate anemotion signal. The system 102 would select from a list of emotions inthe emotion data table 135.

The system 102 may also use a location module 177. The location module177 determines the location of the user by receiving location data 111,for example from the GPS sensors of a cellular phone, which are acomponents of one of the client devices 106(1-N), the location module177 can also track whether the user changes direction by keeping trackof the user's motion and location and how many times they changedirection. The location module 177 can store this information in alocation data table 129. For example, in a health emergency the usercould continually move back and forth, which the system 102 detects andcan record as a factor in whether the user is physically distressed. Thelocation module 177 tracks the user's movements throughout this time tounderstand their behavior.

The system 102 also employs a biometric detection module 188 in order todetermine a biometric signal. While the user is experiencing sudden andsharp pains through her body, her pulse rate may elevate at a rapidrate. The biometric detection module 188 detects the elevated pulse rateand keeps track of the pulse values.

The system 102 also includes a threshold determination module 166 (TDM166). The TDM 166 accesses the data store 138 to retrieve values fromthe location data table 129, the biometric data table 217, and theemotion data table 135 and applies these values to a formula todetermine if a threshold has been met or exceeded. If the threshold isexceeded the TDM 166 sends a signal to the notification module 133.

At the instance the TDM 166 has informed the notification module 133, itsends a notification 218 to the other user's client computing devices106 (1-N) participating in the communication session 104. In thisexample, the TDM 166 has received all three signals from the user whileshe has experienced these sudden and sharp pains throughout her body andif it determined that the user has met the threshold, the system wouldsend a notification 218 to the other users participating in thecommunication session that the user was in distress, in need ofassistance, and would share the user's location.

As shown in FIG. 1, the device(s) 110 of the system 102 includes aserver module 136, a data store 138, and an output module 140. Theserver module 136 is configured to receive, from individual clientcomputing devices 106(1) through 106(N), streams 142(1) through 142(M)(where M is a positive integer number equal to 2 or greater). In somescenarios, not all the client computing devices utilized to participatein the communication session 104 provide an instance of streams 142, andthus, M (the number of instances submitted) may not be equal to N (thenumber of client computing devices). In some other scenarios, one ormore of the client computing devices 106 may be communicating anadditional stream 142 that includes content, such as a document or othersimilar type of media intended to be shared during the communicationsession 104.

The server module 136 is also configured to receive, generate andcommunicate session data 144 and to store the session data 144 in thedata store 138. The session data 144 can define aspects of acommunication session 104, such as the identities of the participants,the content that is shared, etc. In various examples, the server module136 may select aspects of the streams 142 that are to be shared with theclient computing devices 106(1) through 106(N). The server module 136may combine the streams 142 to generate communication data 146 definingaspects of the communication session 104. The communication data 146 cancomprise individual streams containing select streams 142. Thecommunication data 146 can define aspects of the communication session104, such as a user interface arrangement of the user interfaces on theclient computing devices 106, the type of data that is displayed andother functions of the server module 136 and client computing devices.The server module 136 may configure the communication data 146 for theindividual client computing devices 106(1)-106(N).

Communication data can be divided into individual instances referencedas 146(1)-146(N). The output module 140 may communicate thecommunication data instances 146(1)-146(N) to the client computingdevices 106(1) through 106(N). Specifically, in this example, the outputmodule 140 communicates communication data instance 146(1) to clientcomputing device 106(1), communication data instance 146(2) to clientcomputing device 106(2), communication data instance 146(3) to clientcomputing device 106(3), and communication data instance 146(N) toclient computing device 106(N), respectively.

The communication data instances 146(1)-146(N) may communicate audiothat may include video representative of the contribution of eachparticipant in the communication session 104. Each communication datainstance 146(1)-146(N) may also be configured in a manner that is uniqueto the needs of each participant user of the client computing devices106(1) through 106(N). Each client computing device 106(1) through106(N) may be associated with a communication session view. Examples ofthe use of communication session views to control the views for eachuser at the client computing devices 106 are described with reference toFIG. 2.

FIG. 2 is a block diagram of an example device in the communicationsystem of FIG. 1. The device 200 may represent one of device(s) 110where the device 200 includes one or more processing unit(s) 202,computer-readable media 204, and communication interface(s) 206. Thecomponents of the device 200 are operatively connected, for example, viaa bus 207, which may include one or more of a system bus, a data bus, anaddress bus, a PCI bus, a Mini-PCI bus, and any variety of local,peripheral, and/or independent buses.

As utilized herein, processing unit(s), such as the processing unit(s)202 and/or processing unit(s) 112, may represent, for example, aCPU-type processing unit, a GPU-type processing unit, afield-programmable gate array (“FPGA”), another class of digital signalprocessor (“DSP”), or other hardware logic components that may, in someinstances, be driven by a CPU. For example, and without limitation,illustrative types of hardware logic components that may be utilizedinclude Application-Specific Integrated Circuits (“ASICs”),Application-Specific Standard Products (“ASSPs”), System-on-a-ChipSystems (“SOCs”), Complex Programmable Logic Devices (“CPLDs”), etc.

As utilized herein, computer-readable media, such as computer-readablemedia 204 and/or computer-readable media 114, may store instructionsexecutable by the processing unit(s). The computer-readable media mayalso store instructions executable by external processing units such asby an external CPU, an external GPU, and/or executable by an externalaccelerator, such as an FPGA type accelerator, a DSP type accelerator,or any other internal or external accelerator. In various examples, atleast one CPU, GPU, and/or accelerator is incorporated in a computingdevice, while in some examples one or more of a CPU, GPU, and/oraccelerator is external to a computing device.

Computer-readable media may include computer storage media and/orcommunication media. Computer storage media may include one or more ofvolatile memory, nonvolatile memory, and/or other persistent and/orauxiliary computer storage media, removable and non-removable computerstorage media implemented in any method or technology for storage ofinformation such as computer-readable instructions, data structures,program modules, or other data. Thus, computer storage media includestangible and/or physical forms of media included in a device and/orhardware component that is part of a device or external to a device,including but not limited to random-access memory (“RAM”), staticrandom-access memory (“SRAM”), dynamic random-access memory (“DRAM”),phase change memory (“PCM”), read-only memory (“ROM”), erasableprogrammable read-only memory (“EPROM”), electrically erasableprogrammable read-only memory (“EEPROM”), flash memory, compact discread-only memory (“CD-ROM”), digital versatile disks (“DVDs”), opticalcards or other optical storage media, magnetic cassettes, magnetic tape,magnetic disk storage, magnetic cards or other magnetic storage devicesor media, solid-state memory devices, storage arrays, network attachedstorage, storage area networks, hosted computer storage or any otherstorage memory, storage device, and/or storage medium that can be usedto store and maintain information for access by a computing device.

In contrast to computer storage media, communication media may embodycomputer-readable instructions, data structures, program modules, orother data in a modulated data signal, such as a carrier wave, or othertransmission mechanism. As defined herein, computer storage media doesnot include communications media. That is, computer storage media doesnot include communications media consisting solely of a modulated datasignal, a carrier wave, or a propagated signal, per se.

Communication interface(s) 206 may represent, for example, networkinterface controllers (“NICs”) or other types of transceiver devices tosend and receive communications over a network. The communicationinterfaces 206 are used to facilitate communication over a data networkwith client computing devices 106.

In the illustrated example, computer-readable media 204 includes thedata store 138. In some examples, the data store 138 includes datastorage such as a database, data warehouse, or other type of structuredor unstructured data storage. In some examples, the data store 138includes a corpus and/or a relational database with one or more tables,indices, stored procedures, and so forth to enable data access includingone or more of hypertext markup language (“HTML”) tables, resourcedescription framework (“RDF”) tables, web ontology language (“OWL”)tables, and/or extensible markup language (“XML”) tables, for example.

The data store 138 may store data for the operations of processes,applications, components, and/or modules stored in computer-readablemedia 204 and/or executed by processing unit(s) 202 and/oraccelerator(s). For instance, in some examples, the data store 138 maystore session data 208 (e.g., session data 144), profile data, and/orother data. The session data 208 may include a total number ofparticipants in the communication session 104, and activity that occursin the communication session 104 (e.g., behavior, activity of theparticipants), and/or other data related to when and how thecommunication session 104 is conducted or hosted. Examples of profiledata include, but are not limited to, a participant identity (“ID”) andother data.

In an example implementation, the data store 138 stores biometric data160, image data 199, location data 111 that is received by one or morebiometric sensors. The system 102 generates communication data 146 thatwhen displayed by the display of client computing device 106(2), allowsthe client computing device 106(2) to display any one of thenotifications 218 that are associated with the biometric data 160 of thefirst user, where the biometric data 160 is analyzed from the first userthat is in communication with the client computing device 106(1),thereby displaying the notification 218 on the client computing device106(2) of the second user.

In another example, if the first user's biometric data 160 has asignature that the biometric detection module 188 matches to a physicalstate of the first user, the view of the second user's display would bechanged. For example, if the first and second users are in acommunication session 104 and the first user's pulse rate reached acertain value to indicate a high pulse, the notification module 133selects a notification 218 from a biometric data table 217 that isassociated with the physical state of having a high pulse. This causes adisplay of a notification 218 associated with the first user's biometricdata 160 and sends it to the second user's client computing device 106(1-N). As noted above, the data store 138 may store the streams 142,communication session views 250, session data 208, image data 199,biometric data 160 and a biometric data table 217.

Alternately, some or all of the above-referenced data can be stored onseparate memories 224 on board one or more processing unit(s) 202 suchas a memory on board a CPU-type processor, a GPU-type processor, anFPGA-type accelerator, a DSP-type accelerator, and/or anotheraccelerator. In this example, the computer-readable media 204 alsoincludes an operating system 226 and an application programminginterface(s) 228 configured to expose the functionality and the data ofthe device(s) 110 (e.g., example device 200) to external devicesassociated with the client computing devices 106(1) through 106(N).Additionally, the computer-readable media 204 includes one or moremodules such as the server module 136 and an output module 140, althoughthe number of illustrated modules is just an example, and the number mayvary higher or lower. That is, functionality described herein inassociation with the illustrated modules may be performed by a fewernumber of modules or a larger number of modules on one device or spreadacross multiple devices.

As such and as described earlier, in general, the system 102 isconfigured to host the communication session 104 with the plurality ofclient computing devices 106(1) through 106(N). The system 102 includesone or more processing units 202 and a computer-readable medium 204having encoded thereon computer-executable instructions to cause the oneor more processing units 202 to receive streams 142(1) through 142(M) atthe system 102 from a plurality of client computing devices 106(1)through 106(N), select streams 142 based, at least in part, on thecommunication session view 250 for each user, and communicatecommunication data 146 defining the communication session views 250corresponding to the client computing devices 106(1) through 106(N).

The communication data instances 146(1) through 146(N) are communicatedfrom the system 102 to the plurality of client computing devices 106(1)through 106(N). The communication session views 250(1) through 250(N)cause the plurality of client computing devices 106(1) through 106(N) todisplay views of the communication session 104 under user control. Thecomputer-executable instructions also cause the one or more processingunits 202 to determine that the communication session 104 is totransition to a different communication session view of thecommunication session 104 based on a user communicated control signal156.

It is noted that the above description of the hosting of a communicationsession 104 by the system 102 implements the control of thecommunication session view in a server function of the device 110. Insome implementations, the server function of the device 110 may combineall media portions into the communication data 146 for each clientcomputing device 106 to configure the view to display. The informationstored in the communication session view as described above may also bestored in a data store 138 of the client computing device 106. Theclient computing device 106 may receive a user input and translate theuser input as being a view switching control signal that is nottransmitted to the server. The control signal may be processed on theclient computing device itself to cause the display to switch to thedesired view. The client computing device 106 may change the display byre-organizing the portions of the communication data 146 received fromthe server according to the view selected by the user.

The ability of a user's device to send a notification 218 to other usersparticipating in a communication session 104 is described with referenceto screenshots of the display. The user's image may be analyzed todetermine an emotion using pattern recognition or other suitabletechnology. Reference is made to FIG. 3, which illustrates an example ofimage data 199 that can be analyzed by the system to determine anemotion. The facial expressions can be used to identify an indication ofa change in emotion.

For instance, a first user may utilize a client computing device 106(1)to communicate with a second user of another client computing device106(2). Specifically, FIG. 3 depicts a user participating in acommunication session 104. FIG. 3 depicts image data 199 from a clientcomputing device 106(1-N). Image data 199 captured in 301(a) shows theuser in a communication session 104 displaying a facial expression thatis happy in nature. If during the course of the communication session104, there was a change in the user's physical condition such that theuser's facial expression changed to a sad expression as depicted in301(b), the emotion detection module 198 can detect the emotion in imagedata 199 from the user, and in response match it to an emotion in thebiometric data table 217 and then send a notification 218 to the otherusers.

Turning now to FIG. 4A, this is a diagram of a communication session 104between a first user of client computing device 106(1) and a second userof client computing device 106(2) that illustrates an example accordingto an embodiment of the present invention. This communication session104 consists of a series of messages that are sent between the clientcomputing devices 106(1) and 106(2). As an example, the first user ofclient computing device 106(1) has sent a first message to the seconduser of client computing device 106(2). The camera 404 of the clientcomputing device 106(1) captures a view 406 of the first user during thecommunication session 104. Note that the camera 404 has captured theview 406 of the first user with a smiling expression which denotes ahappy emotion.

Turning now to FIG. 4B, this is a diagram of a continuation of the samecommunication session 104 as previously described in FIG. 4A. After aseries of exchanged messages, the first user has neither responded tothe second user's message 408 nor message 410. Also, during thiscommunication session 104, the first user's expression has changed froma smile to a frown as depicted in view 412. As such, the camera 404 ofclient computing device 106(1) has captured image data 199 of the firstuser's change in expression.

FIG. 4B also depicts a biometric sensor 195 which would enable a clientcomputing device 106(N-1) to receive biometric values, including but notlimited to pulse rate, body temperature, etc. The biometric sensor 195is intended for illustration purposes only in FIG. 4B. Its locationmight be an internal component of a wearable computing device such as ona smart watch, or a sensor on a detachable device that connects to theclient computing device 106(1-N). In any scenario, the biometric sensor195 determines the pulse rate of the first user and is continuouslyoperating during the communication session 104 by receiving new valuesof the user's pulse, for instance.

Turning now to FIG. 4C, this is a diagram illustrating a continuation ofthe communication session 104 of the preceding example. At this time ofthe communication session 104, the first user of client computing device106(1) has not responded to the second user's messages 404 or 405. Thebiometric data 160, image data 199, and location data 111 are used bythe TDM 166 to determine whether a serious health condition has arisenwhich would warrant a notification 218. In this example, the biometricsensor 195 is analyzing this biometric data 160 and determined that thefirst user's pulse rate has increased dramatically and is unusuallyhigh. Also, the image data 199 indicates that the first user'sexpression has changed from a smile to a frown. Additionally, thelocation data 111 may have determined that the user's motions are rapidand erratic. It should be understood that location data 111 iscontinuously monitored and any changes are continuously updated in thesystem.

As such, in this example, the TDM 166 has made a determination that thefirst user is experiencing a serious health condition and thus sends anotification 218 to the second user's client computing device 106(2). Asillustrated in FIG. 4C, the notification 218 is an alert message whichappears on the display screen 101 of the second user's client computingdevice 106(2). The notification 218 indicates that the first user mayhave a serious health condition and be in need of assistance.

In other embodiments, different notifications are used. For example, thesecond user can select the notification 218 in order to obtain specificinformation about the first user's condition, including but not limitedto the specific pulse readings over a period of time, the physicallocation of the first user, allergy conditions, emergency contacts,blood type, etc.

This allows the second user to understand why the first user has notresponded in this instance to previous messages 408 and 410. Moreimportantly, the notification 218 could provide the second user withvaluable information to assist the first user in the event of alife-threatening condition. It should be noted, as a consequence of thecontinuous operation of the TDM 166, if soon after the first user'sbiometric data 160, image data 199, and location data 111 fell below thethreshold, the second user would be notified as such. A notification 218might alert the other user that the first user's condition has returnedto normal levels, for example.

Turning now to FIG. 5, this is a flowchart illustrating a routine 500 ofan operation of a communication session 104 according to an embodimentof the present invention. At step 501 the system receives biometric data160, location data 111, and image data 199. For example, the user mightbe using a client computing device such as a cell phone and/or awearable device such as a smart watch equipped with GPS or otherlocation identifying hardware and a front-facing camera. The clientcomputing device can send information that it receives from all thesesensors to the system. The biometric data could be a pulse. The locationdata could be a specific location where the user is located, and theimage data is a picture of the user.

At step 503, the system monitors the pulse and determines the velocityof the user to determine the level of distress. For example, if the userhad a wearable device, the device would take the user's pulse and sendit to the system 102 and the system 102 would monitor the values it'sreceiving. In addition, it would receive values linked to the velocityof the user that could be sent from a position sensor or other similardevice from the user's client device and sent to the system 102.

At step 505, the system analyzes one or more physical features of theuser depicted in the image data, wherein an identification of the one ormore physical features influences the level of distress. For example,when the system receives image data, it applies an emotion detectionmodule and compares the images to the results that are associated withdistress.

At step 507, the system will determine whether the level of distressexceeds a threshold or not. For example, if the user's pulse is toohigh, or walking too fast, the threshold could be exceeded. In anotherexample, the user is having an expression of distress or moving tooquickly or erratically. Different combinations are possible in differentembodiments of the invention to determine if the threshold is met. Ifthe level exceeds a threshold, the system 102 proceeds to step 509 whereit communicates a notification 218 indicating the level of distress to aremote computing device. For example, the server sends a notification218 to another client computing device that is in a communicationsession with the first user, whereby the second user is notified thatthe first user is in distress. If the level of distress does not exceedthe threshold, no notification 218 is sent and the system will revertback to step 501 receiving biometric data 160, location 111 data, andimage data 199.

Turning now to FIG. 6, this is a flowchart illustrating an operation ofa communication session 104 according to an embodiment of the presentinvention. At step 601, the TDM 166 of system 600 begins. Next, at step603, the system 600 receives biometric data 160 from the biometricsensors. Continuing to step 605, the system 600 calculates the firstscore of the received biometric data 160. Next, at step 607, the system600 receives location data 111 and calculates the second score duringstep 609. Next, at step 611, the system 600 receives image data 199 andcalculates the third score during step 613.

At step 615, the system 600 applies a formula to the first score, secondscore, and third score. Next, at step 617, the system 600 factors thecontext of the communication session 104. Next, at step 619, the system600 determines whether a threshold has been exceeded from application ofthe preceding formula in step 617. If the answer is yes, the systemproceeds to step 621 and sends the notification 218 to the clientcomputing device 106(N) of the other user. On the other hand, if thethreshold has not been exceeded, the system 600 reverts to step 601 atthe start of the TDM 166 process continues.

It should be understood that the operations of the methods disclosedherein are not necessarily presented in any particular order and thatperformance of some or all of the operations in an alternative order(s)is possible and is contemplated. The operations have been presented inthe demonstrated order for ease of description and illustration.Operations may be added, omitted, and/or performed simultaneously,without departing from the scope of the appended claims.

It also should be understood that the illustrated methods can end at anytime and need not be performed in their entireties. Some or alloperations of the methods, and/or substantially equivalent operations,can be performed by execution of computer-readable instructions includedon a computer-storage media, as defined below. The term“computer-readable instructions,” and variants thereof, as used in thedescription and claims, is used expansively herein to include routines,applications, application modules, program modules, programs,components, data structures, algorithms, and the like. Computer-readableinstructions can be implemented on various system configurations,including single-processor or multiprocessor systems, minicomputers,mainframe computers, personal computers, hand-held computing devices,microprocessor-based, programmable consumer electronics, combinationsthereof, and the like.

It should be appreciated that the logical operations described hereinare implemented (1) as a sequence of computer implemented acts orprogram modules running on a computing system and/or (2) asinterconnected machine logic circuits or circuit modules within thecomputing system. The implementation is a matter of choice dependent onthe performance and other requirements of the computing system.Accordingly, the logical operations described herein are referred tovariously as states, operations, structural devices, acts, or modules.These states, operations, structural devices, acts, and modules may beimplemented in software, in firmware, in special purpose digital logic,and any combination thereof.

For example, the operations of the routines 500 and/or 600 are describedherein as being implemented, at least in part, by an application,component and/or circuit, such as the server module 136 in device 110 inFIG. 1 in the environment 100 hosting the communication session 104. Insome configurations, the server module 136 can be a dynamically linkedlibrary (DLL), a statically linked library, functionality produced by anapplication programming interface (API), a compiled program, aninterpreted program, a script or any other executable set ofinstructions. Data and/or modules, such as the server module 136, can bestored in a data structure in one or more memory components. Data can beretrieved from the data structure by addressing links or references tothe data structure.

Although the following illustration refers to the components of FIG. 1and FIG. 2, it can be appreciated that the operations of the routines500 and/or 600 may also be implemented in many other ways. For example,the routines 500 and/or 600 may be implemented, at least in part, or inmodified form, by a processor of another remote computer or a localcircuit, such as for example, the client module 130 in the clientcomputing device 106(1). In addition, one or more of the operations ofthe routines 500 and/or 600 may alternatively or additionally beimplemented, at least in part, by a chipset working alone or inconjunction with other software modules. Any service, circuit orapplication suitable for providing the techniques disclosed herein canbe used in operations described herein.

Although the techniques described herein have been described in languagespecific to structural features and/or methodological acts, it is to beunderstood that the appended claims are not necessarily limited to thefeatures or acts described. Rather, the features and acts are describedas example implementations of such techniques.

The operations of the example processes are illustrated in individualblocks and summarized with reference to those blocks. The processes areillustrated as logical flows of blocks, each block of which canrepresent one or more operations that can be implemented in hardware,software, or a combination thereof. In the context of software, theoperations represent computer-executable instructions stored on one ormore computer-readable media that, when executed by one or moreprocessors, enable the one or more processors to perform the recitedoperations. Generally, computer-executable instructions includeroutines, programs, objects, modules, components, data structures, andthe like that perform functions or implement particular abstract datatypes. The order in which the operations are described is not intendedto be construed as a limitation, and any number of the describedoperations can be executed in any order, combined in any order,subdivided into multiple sub-operations, and/or executed in parallel toimplement the described processes. The described processes can beperformed by resources associated with one or more device(s) such as oneor more internal or external CPUs or GPUs, and/or one or more pieces ofhardware logic such as FPGAs, DSPs, or other types of accelerators.

All of the methods and processes described above may be embodied in, andfully automated via, software code modules executed by one or moregeneral purpose computers or processors. The code modules may be storedin any type of computer-readable storage medium or other computerstorage device. Some or all of the methods may alternatively be embodiedin specialized computer hardware.

Conditional language such as, among others, “can,” “could,” “might” or“may,” unless specifically stated otherwise, are understood within thecontext presented that certain examples include, while other examples donot include, certain features, elements and/or steps. Thus, suchconditional language is not generally intended to imply that certainfeatures, elements and/or steps are in any way required for one or moreexamples, or that one or more examples necessarily include logic fordeciding, with or without user input or prompting, whether certainfeatures, elements and/or steps are included or are to be performed inany particular example. Conjunctive language such as the phrase “atleast one of X, Y or Z,” unless specifically stated otherwise, is to beunderstood to present that an item, term, etc. may be either X, Y, or Z,or a combination thereof.

Any routine descriptions, elements or blocks in the flow diagramsdescribed herein and/or depicted in the attached figures should beunderstood as potentially representing modules, segments, or portions ofcode that include one or more executable instructions for implementingspecific logical functions or elements in the routine. Alternateimplementations are included within the scope of the examples describedherein in which elements or functions may be deleted, or executed out oforder from that shown or discussed, including substantiallysynchronously or in reverse order, depending on the functionalityinvolved as would be understood by those skilled in the art. It shouldbe emphasized that many variations and modifications may be made to theabove-described examples, the elements of which are to be understood asbeing among other acceptable examples. All such modifications andvariations are intended to be included herein within the scope of thisdisclosure and protected by the following claims.

We claim:
 1. A method for identifying a level of distress of a userinteracting with a computing device, comprising: receiving location dataindicating a location of the user; determining a velocity of the userbased on the location data; monitoring the velocity of the user;determining a plurality of direction changes from the location data,wherein a number of direction changes within a time period increases thelevel of distress; determining the level of distress of the user basedon the velocity of the user and the number of direction changes of theuser; and in response to determining that the level of distress exceedsa threshold, communicating a notification to a remote computing device.2. The method of claim 1, further comprising determining a thresholdchange in the velocity of the user, wherein the threshold change invelocity increases the level of distress.
 3. The method of claim 1,further comprising receiving biometric data indicating a temperature ofthe user, wherein a rise in the temperature beyond a thresholdtemperature increases the level of distress.
 4. The method of claim 1,further comprising receiving biometric data indicating a temperature ofthe user, wherein a reduction in the temperature beyond a thresholdtemperature increases the level of distress.
 5. The method of claim 1,further comprising receiving a pulse of the user, wherein an increase inthe pulse beyond a predetermined pulse level increases the level ofdistress.
 6. The method of claim 1, further comprising receiving a pulseof the user, wherein a decrease in the pulse beyond a predeterminedpulse level increases the level of distress.
 7. A computer system foridentifying a level of distress of a user, comprising: a GPS sensor forreceiving a location of the user; one or more processors; and a computerstorage medium having computer-executable instructions stored thereuponwhich, when executed by the one or more processors, cause the computingsystem to: receive GPS location data indicating the location of theuser; receive image data depicting physical features of the user;determining a plurality of direction changes, wherein a number ofdirection changes within a time period increases the level of distress;determine the level of distress of the user based on the numberdirection changes; and in response to determining that the level ofdistress exceeds a threshold, communicate a notification to a remotecomputing device.
 8. The computer system of claim 7, further comprisingdetermining a threshold change in a velocity based on a change in thelocation of the user, wherein the threshold change in velocity increasesthe level of distress.
 9. The computer system of claim 7, furthercomprising a biometric sensor for receiving biometric data from theuser, wherein the computer-executable instructions further cause thecomputing system to receive the biometric data from the biometricsensor, the biometric data indicating a temperature of the user, whereina rise in the temperature beyond a threshold temperature increases thelevel of distress.
 10. The computer system of claim 7, furthercomprising a biometric sensor for receiving biometric data from theuser, wherein the computer-executable instructions further cause thecomputing system to receive the biometric data from the biometricsensor, the biometric data indicating a temperature of the user, whereina reduction in the temperature beyond a threshold temperature increasesthe level of distress.
 11. The computer system of claim 7, furthercomprising a biometric sensor for receiving biometric data from theuser, wherein the computer-executable instructions further cause thecomputing system to receive the biometric data from the biometricsensor, the biometric data indicating a pulse of the user, wherein anincrease in the pulse beyond a predetermined pulse level increases thelevel of distress.
 12. The computer system of claim 7, furthercomprising a biometric sensor for receiving biometric data from theuser, wherein the computer-executable instructions further cause thecomputing system to receive the biometric data from the biometricsensor, the biometric data indicating a pulse of the user, wherein adecrease in the pulse beyond a predetermined pulse level increases thelevel of distress.
 13. A computer storage medium havingcomputer-executable instructions stored thereupon which, when executedby one or more processors of a computing system, cause the computingsystem to: receive location data indicating a location of the user;determine a plurality of direction changes from the location data,wherein a number of direction changes within a time period increases thelevel of distress; determine the level distress of the user based on thenumber of direction changes of the user; and in response to determiningthat the level of distress exceeds a threshold, communicate anotification to a remote computing device.
 14. The computer storagemedium of claim 13, further comprising determining a threshold change ina velocity of the user based on the location data, wherein the thresholdchange in the velocity increases the level of distress.
 15. The computerstorage medium of claim 13, wherein the computer-executable instructionsfurther cause the computing system to receive biometric data from abiometric sensor, the biometric data indicating a temperature of theuser, wherein a rise in the temperature beyond a threshold temperatureincreases the level of distress.
 16. The computer storage medium ofclaim 13, wherein the computer-executable instructions further cause thecomputing system to receive biometric data from a biometric sensor, thebiometric data indicating a temperature of the user, wherein a reductionin the temperature beyond a threshold temperature increases the level ofdistress.
 17. The computer storage medium of claim 13, wherein thecomputer-executable instructions further cause the computing system toreceive biometric data from a biometric sensor, the biometric dataindicating a pulse of the user and an increase in the pulse beyond apredetermined pulse level increases the level of distress.